home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Extra 1997 #1 / Amiga Plus Extra 1997 #1.iso / programme / daten / adm / arexx / adm-arexxmakros.lha / Ausdruck / DruckeEintrag_15cpi.adm < prev    next >
Text File  |  1996-08-08  |  5KB  |  201 lines

  1. /* $VER: DruckeEintrag.adm 1.4 (19.2.1995)
  2.  
  3.    Druckt einen Eintrag mit allen Daten
  4.    (samt ExternInfo-Datei, falls vorhanden)
  5.  
  6.    von Carsten Kullik und Jan Geißler.
  7.  
  8.    1.0 [CaK]  9.6.94   - Erste Version.
  9.    1.1 [jan]  13.5.95  - Völlig überarbeitet.
  10.                          Anpassung an neue Stemvariablen.
  11.    1.2 [jan]  15.6.95  - EXTFILE-Parameter bei GETADDRESS
  12.                          für ADM2.01
  13.    1.3 [jan]  25.10.95 - Bei mehreren Telefonnummern war Trennung durch
  14.                          Komma im Ausdruck fehlerhaft
  15.                        - Externes File wurde nicht gefunden aufgrund
  16.                          falschen Parameters bei GetAddress.
  17.                        - Ausdruck des externen Files konnte aufgrund
  18.                          falschen OPEN()-Parameters noch nie funktioniert
  19.                          haben.
  20.    1.4 [jan]  19.2.96  - Druckt nun auch Gruppennamen aus
  21.                        - Kommentierung zumindest ein bißchen verbessert
  22.  
  23. */
  24.  
  25.  
  26. OPTIONS RESULTS
  27.  
  28.  
  29. /* ----- Variablendefinitionen */
  30.  
  31. file    = ""
  32. ok      = "OK"
  33. ausgabe = 0           /* Ausgabe Info-File vorsorglich sperren */
  34. LF      = '0A'X       /* Linefeed*/
  35.  
  36.  
  37. /* ----- Rexx-Library öffnen */
  38.  
  39. IF ~SHOW("L","rexxreqtools.library") THEN
  40.    CALL ADDLIB("rexxreqtools.library",0,-30,0)
  41.  
  42.  
  43. /* ----- Druckerausgabe öffnen */
  44.  
  45.  
  46. IF ~OPEN(drucker,"PRT:","W") THEN DO   /*Druckerausgabe vorbereiten*/
  47.    ECHO "Kann Druckerausgabe nicht einleiten!"
  48.    EXIT
  49. END
  50.  
  51.  
  52. /* ----- Adresse holen */
  53.  
  54. GETADDRESS ADM EXTFILE    /* Speicheradresse des akt. Datensatzes */
  55.  
  56.  
  57. /* ----- Frage, ob ExtInfo-File ausdrucken, falls existent? */
  58.  
  59. IF EXISTS(ADM.EXTFILE) THEN DO
  60.    Tags = "rt_reqpos=reqpos_centerscr rtez_flags=ezreqf_centertext"
  61.    Frage = "Ausdruck des Datensatzes" datei LF ||"mit externer Datei (ExternInfo)?"
  62.    ausgabe = rtezrequest(Frage,"Ja|Nein",,Tags)
  63. END
  64. text = "1B"x || "[4w"
  65. CALL Druckzeile 
  66.  
  67. /* ----- Name generieren & drucken */
  68.  
  69.  
  70. nam = ""
  71. IF ADM.FULLNAME ~= "" THEN DO
  72.    nam = STRIP(ADM.SALUTATION STRIP(ADM.FIRSTNAME STRIP( ADM.TITLE ADM.LASTNAME)))
  73. END
  74. IF ADM.ID ~= "" THEN nam = STRIP(nam " (ID:" ADM.ID || ")")
  75.  
  76. IF ADM.SORT = "COMPANY" THEN DO
  77.    text = ADM.COMPANY
  78.    CALL Druckzeile
  79.    IF nam ~= "" THEN DO
  80.       text = nam
  81.       CALL Druckzeile
  82.    END
  83. END; ELSE DO
  84.    IF nam ~= "" THEN DO
  85.       text = nam
  86.       CALL Druckzeile
  87.    END
  88.    text = ADM.COMPANY
  89.    CALL Druckzeile
  90. END;
  91.  
  92.  
  93. /* ----- Adresse ausdrucken */
  94.  
  95. text = LF || ADM.ADDRESS1
  96. CALL Druckzeile
  97. text = ADM.ADDRESS2
  98. CALL Druckzeile
  99. text = STRIP(ADM.POSTCODE ADM.CITY)
  100. IF ADM.COUNTRY ~= "" THEN text = text || "," ADM.COUNTRY
  101. CALL Druckzeile
  102.  
  103.  
  104. /* ----- Telefonnummern ausdrucken */
  105.  
  106. text = ""; pp = POS("|",ADM.TELEPHONE)
  107. DO WHILE pp > 0
  108.    ADM.TELEPHONE = DELSTR(ADM.TELEPHONE,pp,1)
  109.    ADM.TELEPHONE = INSERT(", ",ADM.TELEPHONE,pp-1)
  110.    pp = POS("|",ADM.TELEPHONE)
  111. END;
  112.  
  113. pp = POS("  ",ADM.TELEPHONE)
  114. DO WHILE pp > 0
  115.    ADM.TELEPHONE = DELSTR(ADM.TELEPHONE,pp,1)
  116. pp = POS("  ",ADM.TELEPHONE)
  117. END;
  118.  
  119. pp = POS(" ,",ADM.TELEPHONE)
  120. DO WHILE pp > 0
  121.    ADM.TELEPHONE = DELSTR(ADM.TELEPHONE,pp,1)
  122. pp = POS(" ,",ADM.TELEPHONE)
  123. END;
  124.  
  125. IF ADM.TELEPHONE ~= "" THEN text = text || "Tel.:" ADM.TELEPHONE
  126. CALL Druckzeile
  127.  
  128. text = ""
  129. IF ADM.FAX ~= "" THEN text = "Fax: " ADM.FAX
  130. CALL Druckzeile
  131.  
  132.  
  133. /* ----- Geburtstag */
  134.  
  135. text = ""
  136. IF ADM.BIRTHDAY ~= "" THEN text = LF || "Geb.:" ADM.BIRTHDAY
  137. CALL Druckzeile
  138.  
  139.  
  140. /* ----- Gruppennamen mit ausdrucken */
  141.  
  142. GETGROUPNAMES stem
  143. text = ""
  144. IF ADM.FLAGS ~= "" THEN text = LF|| text || "In ADM-Gruppen:"
  145. IF POS("A",ADM.FLAGS) > 0 THEN text = text stem.1
  146. IF POS("B",ADM.FLAGS) > 0 THEN text = text stem.2
  147. IF POS("C",ADM.FLAGS) > 0 THEN text = text stem.3
  148. IF POS("D",ADM.FLAGS) > 0 THEN text = text stem.4
  149. IF POS("E",ADM.FLAGS) > 0 THEN text = text stem.5
  150. IF POS("F",ADM.FLAGS) > 0 THEN text = text stem.6
  151. IF POS("G",ADM.FLAGS) > 0 THEN text = text stem.7
  152. IF POS("H",ADM.FLAGS) > 0 THEN text = text stem.8
  153. IF POS("I",ADM.FLAGS) > 0 THEN text = text stem.9
  154. IF POS("J",ADM.FLAGS) > 0 THEN text = text stem.10
  155. CALL Druckzeile
  156.  
  157.  
  158. /* ----- Bemerkungsfeld */
  159.  
  160. text = ""
  161. IF ADM.REMARK1 ~= "" THEN text = LF || ADM.REMARK1
  162. CALL Druckzeile
  163.  
  164.  
  165. /* ----- ExternInfo ausdrucken! */
  166.  
  167. IF ausgabe THEN DO                          /*Wenn Ausgabe erwuenscht,*/
  168.    text = LF                                /*1 Linefeed einfuegen und*/
  169.    CALL Druckzeile
  170.       IF OPEN(datei,ADM.EXTFILE,"R") THEN DO   /*das externe Info-File oeffnen*/
  171.          DO WHILE ~EOF(datei)            /*Dateiende erreicht? Nein,*/
  172.             text = READLN(datei)         /*Zeilen einlesen und an*/
  173.             call Druckzeile
  174.             /*ok = WRITELN(drucker,text)    Drucker ausgeben*/
  175.          END
  176.          ok = CLOSE(datei)
  177.       END
  178.       ELSE SAY "Kann Externe Datei nicht öffnen!"
  179. END
  180.  
  181. /* ----- Druckerausgabe schließen */
  182.  
  183. ok = CLOSE(drucker)
  184.  
  185.  
  186. EXIT
  187.  
  188. /* ===== PROGRAMMENDE =============  */
  189.  
  190.  
  191. /* ----- Unterroutine: Zeile drucken */
  192.  
  193. Druckzeile:
  194.    text = STRIP(text,"T"," ")           /*Leerzeichen am Ende entfernen*/
  195.    text = STRIP(text,"T",",")           /*Kommas am Ende entfernen*/
  196.  
  197.    IF text ~= "" THEN                   /*Wenn Zeile nicht leer...*/
  198.       ok = WRITELN(drucker,text)        /*Zeile ausgeben*/
  199.  
  200. RETURN
  201.